﻿namespace DoNet.WechatPay.V2.Entitys
{
    public class OrderBaseRequest : RequestBase
    {
        /*
        服务商的APPID	        appid	            是		是		是		是		是	
        商户号	                mch_id	            是		是		是		是		是	
        子商户公众账号/应用ID	sub_appid	        否		否		否		否		否	
        子商户号	            sub_mch_id	        是		是		是		是		是	
        设备号	                device_info	        否		否		否		否		否	
        随机字符串	            nonce_str	        是		是		是		是		是	
        签名	                sign	            是		是		是		是		是	
        签名类型	            sign_type	        否		否		否			
        商品描述	            body	            是		是	  	是		是		是	
        商品详情	            detail	            否		否	  	否		否		否	
        附加数据	            attach	            否		否		否		否		否	
        商户订单号	            out_trade_no	    是		是		是		是		是	
        货币类型	            fee_type	        否		否		否		否	
        总金额	                total_fee	        是		是		是		是		是	
        终端IP	                spbill_create_ip	是		是		是		是		是	
        交易起始时间	        time_start	        否		否		否		否		否	
        交易结束时间	        time_expire	        否		否		否		否		否	
        订单优惠标记	        goods_tag	        否		否		否		否		否	
        通知地址	            notify_url	        是		是		是		是			
        交易类型	            trade_type	        是		是		是		是			
        商品ID	                product_id	        否		否				否			
        指定支付方式	        limit_pay	        否		否		否		否		否	
        用户标识	            openid	            否		否		否			
        用户子标识	            sub_openid	        否		否		否			
        电子发票入口开放标识	receipt	            否		否		否		否		否	
        是否需要分账	        profit_sharing	    否		否		否				否	
        场景信息	            scene_info	        否		否		否		是		否	
        付款码										是	
        */

        /// <summary>
        /// 商户订单号
        /// 是
        /// </summary>
        public string out_trade_no { set; get; } = string.Empty;
        /// <summary>
        /// 商品描述
        /// 是
        /// </summary>
        public string body { set; get; } = string.Empty;
        /// <summary>
        /// 设备号
        /// 否
        /// </summary>
        public string device_info { set; get; } = string.Empty;
        /// <summary>
        /// 商品详情
        /// 否
        /// </summary>
        public string detail { set; get; } = string.Empty;
        /// <summary>
        /// 附加数据
        /// 否
        /// </summary>
        public string attach { set; get; } = string.Empty;

        /// <summary>
        /// 交易类型 
        /// 是
        /// JSAPI 公众号支付
        /// NATIVE Native支付
        /// APP APP支付
        /// MWEB H5支付
        /// MICROPAY 扫码支付
        /// </summary>
        public string trade_type { set; get; } = string.Empty;

        public OrderBaseRequest(string tradeType)
        {
            trade_type = tradeType;
        }
    }
}
